Overtime California
Overtime after 8hrs in a day, double time after 12hrs in a day; overtime on the 7th consecutive day in the workweek, doubletime after the 8th hour on the 7th day
Details
Rule Type
Time
Execution
After segment
Parameters
| Name | DataType | DefaultValue | Description |
|---|
Decision Tree
Rule processing begins in the cell R1:Level1 and proceeds right/down. Any IF statement which results in a DONE step terminates the rule immediately.
| Line# | Level1 | Level2 | Level3 | Comment |
|---|---|---|---|---|
| 1 | Start | |||
| 2 | IF(EMPLOYEE(Exempt) = 1) → | ↓ | Don't allow for Exempt employees | |
| 3 | ↓ | DONE | ||
| 4 | IF(CALC(consecutivedays) = 7) → | ↓ | Are we working 7 consecutive days? If so, all hours are OT or OT2 | |
| 5 | IF(CALC(REG:day) > 8) → | ↓ | Do we have more than 8 hours in the day? | |
| 6 | SET(hours_over2 = SUBTRACT(CALC(REG:day), 8.0)) | Store excess past 8hrs into temporary bucket | ||
| 7 | SET(RegularHours = SUBTRACT(RegularHours, hours_over2)) | Subtract the overage from REG | ||
| 8 | SET(DTHours = hours_over2) | Add the overage to OT2 | ||
| 9 | IF(CALC(REG:day) > 0) → | ↓ | Do we have any remaining hours still in REG? | |
| 10 | SET(hours_over = RegularHours) | Add overage to temporary bucket | ||
| 11 | SET(RegularHours = 0) | Set REG to zero | ||
| 12 | SET(OTHours = hours_over) | Add the overage to OT | ||
| 13 | IF(CALC(REG:day) > 12) → | ↓ | Do we have daily OT2 if worked past 12hrs? | |
| 14 | SET(hours_over2 = SUBTRACT(CALC(REG.day), 12.0)) | Put hours past 12 into temporary bucket | ||
| 15 | SET(RegularHours = SUBTRACT(RegularHours, hours_over2)) | Remove overage from REG | ||
| 16 | SET(DTHours = ADD(DTHours, hours_over2)) | Add overage to OT2 | ||
| 17 | IF(CALC(REG:day) > 8) → | ↓ | Do we have hours past 8? | |
| 18 | SET(hours_over = SUBTRACT(CALC(REG:day), 8)) | Put overage past 8 into temporary bucket | ||
| 19 | SET(RegularHours = SUBTRACT(RegularHours, hours_over)) | Remove overage from REG | ||
| 20 | SET(OTHours = ADD(OTHours, hours_over)) | Add overage to OT | ||
| 21 | IF(CALC(REG:week) > 40) → | ↓ | Lastly, do we have weekly hours past 40? | |
| 22 | SET(hours_over = SUBTRACT(CALC(REG:week), 40.0)) | Add overage to temporary bucket | ||
| 23 | SET(RegularHours = SUBTRACT(RegularHours, hours_over)) | Remove overage from REG | ||
| 24 | SET(OTHours = ADD(OTHours, hours_over)) | Add overage to OT | ||
| 25 | DONE |